Если у вас переменная с неатомарным доступом меняется в прерывании,
а обрабатывается в основном потоке, то её значение может быть
искажено, даже если вы её объявили volatale. Переменная a0_volt, в которой лежит результат вычислений, по всей видимости, объявлена как float. Если вы в основном потоке оперируете её значением, то прерыванию никто не мешает возникнуть и изменить её значение в любой момент времени, даже если она объявлена как volatile. Поэтому ваше утверждение о том, что в volatile переменной будет находиться корректное последнее измерение неверно, а определитель volatile к этому отношение не имеет