678*2978 sind schon deutlich mehr als 32767, das ist die maximale zahl die in die 16 Bit Integer rein passt. Da hat man also schon längst einen Überlauf. Selbst wenn man den Faktor 4 raus kürzt reicht es nicht.

Das Abziehen kann man schon vorziehen, indem an gleich eine Formel für die Temperatur aus den AD werten berechnet als
Temp = (AD_wert - A) * B
mit konstanten Werten A und B. Man kann da in der Regel auch gleich auf das Teilen Verzichten und B entsprechend passend Berechnen.
Der einfache Weg ist es natürlich einfach auf longint als Datentyp auszuweichen. Da reicht es schon wenn man
statt (result*297/100; einfach (result*2978L)/100; schreibt. Die Rechnung wird dann mit 32 Bit, ausgeführt.

Der Teiler 20 für den AD Takt gibt etwas weniger Rauschen. Der alte Teiler von 6 ist aber noch nicht so schlimm.

Der Abblockkondensator ist typischerweise 100 nF. Zur Not tun es auch 10 nF als Kondensator, wenn da noch ein Elko mit z.B. 10 µF in der Nähe ist.