Arduino aus Programm reseten?

Addi:
Schaltung ist relativ simpel: Lüfter mit Pin 13 und GND verbunden.
Wenn ich den Code zur Mittelwertbildung entferne bleiben die Temperatursprünge.

Du jagst also den vom Lüfter verbrauchten Strom (wieviel Strom? Leistung des Lüfters?) durch den Controller.
Und Du misst die Temperatur im Controller.

Dass der Strom durch den Controller auch eine Verlustleistung erzeugt (genau deshalb dürfen die I/O Pins ja nur mit einem bestimmten Maximalstrom beaufschlagt werden), die zur Erwärmung des Controllers beiträgt, ist Dir aber schon klar?