Etwas sehr wenig Kommentar zu den Zeilen. So etwas "ADCSRA=0x87" ist auch nicht sehr aussagekräftig, man braucht immer das Datenblatt dazu. Änderst du nur hier "ucLDR=read_adc(3);" den ADC-Eingang
So kann ich nichts erkennen. AREF ist richtig?