Short answer: yes, you'll need to use some tricks with #define to do what you want; values set in an enum aren't recognised by the preprocessor.
An enum is interpreted by the compiler and not the preprocessor. The statement is ignored by the preprocessor and thus something like PIN_A is not any more meaningful, as far as the preprocessor is concerned, in the later code than j would be from a statement like:
Okay, redone with #define's and it works. Ordinarily I'd avoid preprocessor tricks, except PIN_A defines a value that's used in both preprocessor and expression contexts -- it can be used as an integer like (1<<PIN_A), to define an 8-bit number to be fed into PORTA, or as part of a variable name RA[0-9] to define a member of a bitfield...