Confusion with ADC resolution FFT and programming tools
Let's say I want to create/plot a sinusoid in MATLAB or Python where I can mimic exactly that 16 bit ADC which samples a 1V 100Hz sinusoid input for 1 seconds which is sampled with 512Hz sampling rate.


First, you need to write some code to increment the phase of an angle.  You want to create 512 points.  If the frequency were 1 Hz, you'd sweep through 2pi radians over the course of 512 samples, but your frequency is 100 Hz so you should increment 100 times as fast.

Then you need the right amplitude.  You say 1v (let's assume you mean peak, if not correct accordingly).  Full scale on your ADC is 10v, so you want a tenth of that.  Full scale output of your ADC is 32767, so you want a tenth of that.  The maximum value of the sine function is one.  So basically multiply the output of your sine function (evaluated at the angles calculated above) by 32767/10 and then round.

Of course this fake signal will be unrealistically clean - for a more realistic model you could add some noise, etc.