control ventiladores y un maldito boton :)

Calculas la temperatura mal. Creas un array

int samples[8];

y después no lo usas, sólo utilizas la primera posición

samples = ( 5.0 * analogRead(pinTemperatura) * 100.0) / 1024.0;

Para hacer la media vas sumando "samples" en otra variable, "tempValor" para después fuera del for lo promedias por el número de lecturas que son 8. Desperdicio de memoria en variables y código poco optimizado. En este programa daría igual pero conforme se van haciendo más extensos es una cuestión primordial.
De este modo lo que estás haciendo es la media de las temperaturas 1 a 8, 9 a 16, 17 a 24, etc. cuando lo que suele hacerse es en "tiempo real" ir dando la media de las temperaturas 1 a 8, 2 a 9, 3 a 10, etc. Esto hará que cada vez que se ejecute esa parte del código sólo tengas un delay y no 8 como ahora. Por otra parte, ¿qué razón hay para poner ese delay?

En resumen tienes que quitar el bucle for y aplicar el ejemplo del IDE Smoothing para tener la media de temperaturas como te indico. Y el delay además yo lo bajaría, creo que para nada necesitas que sea tan grande como 100 ms. En Smoothing verás que por ejemplo ponen un delay de sólo 1 ms.