Чивото я совсем не понял ничего в Вашем вопросе

. #define - это работа с препроцессором (ну даже не знаю как назвать, автоматическим текстовым редактором исходного кода программы, что ли). Т.е. используя такую директиву, Вы просто заменяете в "отправляемом на компиляцию" тексте программы VLV_TURN_LEFT_PIN на 0. Ни подо что не отводится память, подстановка никак не влияет и на время работы исполняемой программы.
А const int VLV_TURN_LEFT_PIN
= 0; это переменная типа int с именем VLV_TURN_LEFT_PIN и равная "0" которую нельзя изменять. Она лежит в памяти (как во Flash так и в RAM во время исполнения).
Хотя странно что Вы пропустили знак "равно", может это какой-нить "неклассический" компилятор.

Но вобщем #define и const не кружатся в вечном танце диалектической борьбы, это как "овальный" и "серый"

да и по-моему, в С const есть очень давно.
А уж enum, да, это злобный агент C++. В "+ы" перечислениям ставят то, что при инициализации констант компилятор может выполнить проверку типов(1). А еще, поскольку перечисления - это типы, определенные пользователем то для них можно перегрузить операции (2)(по умолчанию как для int) и тем самым рискнуть попасть под расправу людей работающих над этим же проектом

...
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...