Очевидно, что проще всего использовать более подходящий микроконтроллер - один с АЦП! Есть много (большинство), включая PIC (хотя это не будет моим первым выбором).
Присоединение внешнего SPI или АЦП I2C может быть немного утомительным, так как с вашей стороны не будет SPI или I2C, вам придется разбить его. Если вы сделаете это, используйте часть SPI - это проще. Ваша частота дискретизации пострадает и может в конечном итоге стать немного нервной, если вы не будете осторожны.
Другим решением является использование ШИМ с управлением по напряжению, а затем использование захвата входа таймера для измерения длительности импульса. Это даст вам хорошую регулярность и потенциально хорошее разрешение. Вы можете получить чип (пример) , чтобы сделать это, или вырастить свой собственный . Этот последний вариант требует ввода треугольной волны, а также измеренного (управляющего) напряжения, но на том же сайте ...
В том же духе вы можете использовать низкочастотный VCO (пример) и использовать выход для синхронизации одного из таймеров, а затем периодически использовать второй таймер для выборки первого и сброса его. Подсчет будет относиться к напряжению, хотя не обязательно линейная зависимость, линеаризация может не быть никакой на PIC или на принимающем ПК - я бы пошел на последнее - ваш микро будет сосать арифметику (в отношении производительности) - даже целочисленная арифметика особенно если это связано с делением.