Sieht irgendwie komisch aus dein Code müsste aber Funktionieren. Was bringt der Compiler für Fehlermeldungen?
Meine Verbesserung währe:
Code:
#include <io.h>

int result;

int main(void)
{
   ADCSRA = (1<<ADEN) | (1<<ADFR) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); 
   ADMUX = (1<<REFS1) | (1<<REFS0);
   ADCSRA |= (1<<ADSC);
   for(;;)
   {
       while(!(ADCSRA & (1<<ADIF)));   // Wartet bis ADIF gesetzt
       {
             result=ADC;
             ADCSRA|=(1<<ADIF);
       }
   }
}
Gruß Muraad
PS: du hast bei deiner while(true) Anweisung eine { Klammer zu viel, vielleicht liegts daran.