Maximum frequency that can be converted with Arduino Uno?
First of all, the ADC on the Uno is 10&nbsp;bits, not 12.

The naive approach of having analogRead() in a tight loop can give you
up to 8.9&nbsp;kS/s (112&nbsp;µs per sample), but you won't be able to
do much else, as the CPU spends most of it's time just waiting for the
ADC to do its job. If you configure the ADC manually, then you can set
it into the so called “free running mode”. You then get about
9.6&nbsp;kS/s (104&nbsp;µs/S), but then the CPU is free to process one
sample while the next one is being converted.

If you need to go faster, you can tweak the frequency of the internal
ADC's clock. Then it's a compromise between speed and accuracy: the
faster you go the less accurate. You may get rough but kind of usable
samples at up to 77&nbsp;kS/s (13&nbsp;µs/S).

For a detailed comparison of the different clocking options, with speed
and accuracy estimation, see the article ADC conversion on the Arduino
(analogRead), by Nick Gammon.