Bonsoir Fred,
Effectivement la « lecture » d'une valeur analogique est relative à la tension d'alimentation.
Lorsqu'il est alimenté en USB, la tension que reçoit le microcontrôleur de l'Arduino dépend du modèle.
Sur un Uno ou un Mega, il y a un comparateur qui compare la moitié de VIN avec le 3.3V via un ampli-op. la sortie de cet ampli-op est sur la grille d'un MOSFET qui contrôle l'alimentation via l'USB. Si VIN passe au dessus de 6,6V, le MOSFET coupe la tension USB, le régulateur prend le relai et l'alimentation USB n'est pas utilisée. Sinon l'USB alimente la carte via le MOSFET. On a donc un 5V correct (je parle de la carte officielle, on n'a généralement pas la schématique des cartes chinoises).
Sur un Nano, VUSB est connecté au +5V via une diode schottky. Quand le régulateur fonction parce que VIN est branché, la diode est en inverse (ou tout au moins non polarisé et l'USB ne débite pas). Quand VIN n'est pas connecté, VUSB alimente le Nano avec une chute de tension (la diode) de 0,35V. Par conséquent le Nano n'est alimenté qu'en 4,65V, pas 5V.
Mais sinon, je ne vois pas pourquoi la tension de l'USB serait fluctuante.