You might want to put a ferrite bead on VDDA, and make sure analog ground and digital ground are tied as close together as possible under the microcontroller AND ONLY UNDER THE MICROCONTROLLER. It can be tricky to get 12 actual analog bits out of an ADC on the same chip as a bunch of digital noise. The Bluepill doesn't do this, because it's cheap, but if you're starting from a clean slate, pay attention to this.
Similarly, you may want to add ferrite beads to the power pins of the AD8342.
Also, one of the problems is that if you don't sample precisely at a multiple of your IF, you will get phase error because the microcontroller clock is different than the SI5351A clock, and so you can not integrate the IF signal for a long time to accumulate signal. Perhaps try to derive a clock signal from the SI5351A that is harmonically related to the IF you can use with a timer to trigger the ADC acquisition. For example, say your IF is 50 kHz. You have RF at 100 MHz, LO at 100 + 50 kHz, and then perhaps have the SI5351A output a third clock at some multiple of 50 kHz such as 1 MHz (CLK1 is unused right now). Then you put this to an input counter-timer pin of the STM32F103 (e.g. PA0 or PA15 for T2C1E) and then have it count a certain number of pulses (for example 5 pulses), which is the multiple of the IF, and then fire an interrupt each time the counter rolls over. Then you can for example sample at 200 kHz which is 4 times the IF.