Comportamento imprevedibile del microfono

In realtà la questione è un po' a cavallo tra hardware e software. Ho creato uno sketch per ricevere i rumori in modalità analogica da un modulo con microfono già amplificato uguale a questo: https://images-na.ssl-images-amazon.com/images/I/61zglRBfsWL._AC_SX425_.jpg . Inizialmente con una certa soddisfazione sono riuscito a fargli percepire suoni piuttosto deboli, ai quali arduino risponde accendendo un led. Tuttavia la felicità è finita presto, perchè ogni tanto il microfono da' di matto: si innesca una sorta di oscillazione infinita del livello audio, che a volte è contenuta (+-3 punti), mentre altre volte schizza via a valori stellari (+- 30 o 40). Altre volte ancora, ricevuto un suono il valore medio non torna più ai livelli base. Smanettando ho scoperto alcune cose che la innescano:

1) Spostamenti nello spazio, anche silenziosi. Se lo appoggio sulla scrivania è stabile, se lo appoggio sul portatile impazzisce. Penso dipenda da disturbi elettromagnetici.

2) Suoni troppo forti, come colpi o soffi sul microfono.

3) Completamente a caso e senza preavviso dopo 5-10 minuti di accensione in silenzio.

L'unico modo per uscire dall'oscillazione incontrollata dei livelli audio è il reset. Nei primi due casi ho risolto, facendo in modo che superata una certa soglia di rumore si attivi il watchdog che riavvia arduino. Il problema è il terzo caso, il fatto di non sapere cosa lo scateni mi manda in crisi. Avete qualche idea? Inoltre non capisco perchè sembra quasi che il modulo comunichi con arduino, come se il segnale restituito dal microfono dipendesse anche da come e quando viene letto il pin analogico. Se serve posso postare il codice e una foto dell' "impazzimento" dal plotter seriale. Complessivamente lo sketch esegue prima una calibrazione facendo una media su 100 letture ad intervalli di 50ms, da cui poi definisce una soglia superiore e inferiore.