Maybe you should change these to >= vs ==
Having to hit a specific number is hard
if(avRead == 12 && compare == true){ // fade up if avRead is >15 and fade down has run
if(avRead == 27 && compare == true){ // fade up if avRead is >15 and fade down has run
or make them a range:
( ( avRead >=12 && avRead<20 ) && compare == true )
( ( avRead >=27 && avRead<36 ) && compare == true )
that kind of idea