In den ISR wird legedlich in einer IF schlaufe ein PIN des Controllers abgefragt (ein zweites Hallsignal, für die Richtungserkennung).
in der IF wird dan entschieden ob der Winkel (int) increment oder decrementiert wird.
Würd ich so nicht machen.
Setz ein Flag in der Interruptroutine und frag im Hauptprogramm den zweiten Hallsensor (PIN) ab und entscheide dann die Richtung.

Wenn sich der Atmega nun in einer ISR befindet und ein zweiter Interrupt kommt?
...Dann wird dieses zweite Interrupt Flag gesetzt. Die dazugehörige Routine wird aber erst nach Beendigung der laufenden Interruptroutine eingeleitet.
Treten in dieser Zeit mehrere Interrupts auf werden diese nach der Reihenfolge der Interruptvektortabelle abgearbeitet.
Alternativ kannst Du auch die Interruptabarbeitung mit "SEI" am Anfang einer Interruptroutine freigeben, das ist allerdings nicht ohne Fallstricke und sollte nur in absoluten Ausnahmefällen eingesetzt werden.
Ich hab das bis jetzt nur ein einziges mal bei der Abarbeitung einer 1wire Schnittstelle mit Drehzahlmesser gemacht.
Die Interruptroutinen sollten auf jeden Fall sehr schnell abgearbeitet werden können und keinesfalls sollte auf irgendwelche Portpins gewartet werden müssen (die vielleicht nie den geforderten Zustand annehmen).