Receive bipolar analog signal with sampling rate of 10 kHz
despite being an opinion based question, I would not use an ESP32 because the timing is interrupt based; which means you set the timer to interrupt 10K times per sec (10KHz) and in the ISR function, you read the ADC value. but many other software factors, affect this timings. (e.g. another higher priority interrupt, memory writes because of OS) so the time stamp wouldn't be exact. this is not a very bad thing in many situations but you mentioned Nyquist sampling rate. the nyquist rate is important when you are processing in frequency domain, and an interrupt based 10KHz sampled signal won't be exact. so what would I use ?
I had a similar project, so I chose a STM32 mcu. I set the timer to trigger ADC in that frequency (this is a specific feature, to trigger the ADC with a timer without any software intervention or intruption) and the DMA which would copy the sampled value in a memory location. all of the above, is done without cpu interaction. at the middle, or end of a DMA transactions (which can be up to 65536 transactions), an interrupt could be generated by DMA unit for CPU to handle recorded data (e.g. dumping them to uart or an eeprom memory). the DMA part is not very critical and could be omitted, but the timer trigger for ADC is.