The proper syntax for the macro is
{%EditedObject.FirstName.Value|(identity)GlobalAdministrator%}
As somewhat explained in the previous answers, this won't always work, because on saving of the data, the macro may not know what the value is until later in the process. So best thing to do is as Suneel suggests, and set the Has depending fields on the FirstName field and Depends on other fields for the AltText. This will cause the postback and allow the AltText to populate with the FirstName value