Hallo oberallgeier,

wahrscheinlich wird es nicht helfen was jetzt kommt, aber man kann ja nie wissen.

Das im Register ADCSRA steckende Bit ADIF ist ein 'Schweinebit'. Laut Doku zum ATmega8, Kapitel "ADC Control and Status Register A – ADCSRA" muss man das Bit setzen um es zu löschen.
...
ADIF is cleared by writing a logical one to the flag. Beware that if doing a Read-Modify-Write on ADCSRA, a pending interrupt can be disabled. This also applies if the SBI and CBI instructions are used.
...
Dieses "Read-Modify-Write" macht man automatisch mit einem |= Befehl.

Da dein HAUPTProgramm-Ablauf ja wohl eine Schleife ist, solltest du darin mal nach weiteren |= suchen. Eventuell ist ein Register dabei, welches auch den ADC beeinflusst.
Ein Kandidat wäre noch ein löschen vom ADEN-Bit, da es die Wandlung sofort abbricht und möglicherweise dann mit deinen 1023 zurückkommt.

Ansonsten kann ich so nichts Falsches feststellen.
Ob nun die Schweinepest auf die AVR's überspringen kann, möchte ich hier aber mangels biologischer Vorbildung nicht sagen.

Gruß Sternthaler
P.S.: Zum Thema „setzen zum löschen“ von Registerbits gibt es in einem Thread im ASURO-Teil eine recht ausführliche Diskussion. Den Beitrag kann ich aber leider auch nach zig Stunden Suche nicht mehr finden.