Du solltest mit den Klammern immer etwas einrücken damit man sieht was zusammen gehört.
Der ADC init wird in der ISR des Int0 aufgerufen.
Du solltest initalisieren und aufrufen trennen.
Das initialisieren sollte ins main.
Du kannst nicht im while das ADC-Register abfragen wenn du nicht weisst ob die conversion schon fertig ist.
Der Ablauf sollte etwa so sein:
Im main
Port definieren, variable definieren, INT0 aktivieren, ADC initialisieren aber nicht aufrufen und Interrupt aktivieren.
Die while bleibt vorläufig leer.
In der ISR Int0 den ADC starten.
In der ISR des ADC die ADC Register den Port zuweisen.
Fertig.