The analog read is not giving the correct waveform as that of an oscilloscope
Your sampling rate is far too low for the signals you are looking at; you're not getting enough data points for drawing something that looks like the original signal.
The Arduino library's analogRead(), while slow, can do better, up to about 9000 samples/s; the ADC in the atmega2560 in free-running mode can do about 75000 samples/s at 8 bits resolution. This would require programming it at the register level.
There is only one ADC, so if you want 16 channels, this leaves about 4700 samples/s for each channel. In that configuration, however, the first measurements aren't valid and the second ones should be used, further reducing the sample rate per channel to about 2300 samples/s.
With a perfect reconstruction filter, this would limit you to measuring signals up to only 1150Hz.
All this doesn't even consider the time it takes to store or transmit the results.
So, an Arduino mega 2560 will not do for making a usable 16-channel oscilloscope for your signals; it's not even close.