Io si solito uso un approccio di questo tipo per risolvere questo tipo di "disturbo":
#define WINDOW 10
static unsigned int analogOld;
unsigned int analogVar = analogRead(analogPin);
if( abs(analogVar -analogOld) > WINDOW ){
analogOld = analogVar;
//etc etc
}