Problema con interrupciones

Hola soy novato en este tema y me he metido con las interrupciones, el caso es que dentro de la interrupción sólo guardo en la variable el valor de millis, la interrupción se produce cada 60 segundos sin embargo el valor de millis no son exactamente 60000 sino que varía entre 17 y 42ms. Pienso que la frecuencia de trabajo del arduino y lo corta que es la isr no me debiera de dar tanta diferencia pero no lo comprendo

Primer idea que se me viene a la mente: la interrupción no ocurre exactamente en 60 segundos.

Si ahí requieres precisión, desencadena las interrupciones con el timer1. Sinceramente, por debajo de los 4 milisegundos (a 16 MHz) se pierde precisión debido a tener que aumentar el prescaler (retrasar x ciclos del reloj para incrementar el contador).

A menos que hayan anomalías en el oscilador externo, esto debería ser normal (y en parte esperado).

¿ Como mides la precision de los millis (esos 60000 que comentas) ?

Quizá ahi tengas perdida de precision "aparente"

la interrupción se produce cada 60 segundos sin embargo el valor de millis no son exactamente 60000 sino que varía entre 17 y 42ms

Y quien genera tus supuestos 60 precisos segundos?
17000 a 42000 useg de error es demasiado pero es normal si del otro lado usas algo como un 555 por decir algo que pueda generar algo de 60 seg.

Cuando presentas un problema intenta contextualizarlo. Habla tambien de que o quien envía la señal cada 60 segundos.