No matter what hardware you hook-up, your ADC readings should always be between 0 and 1023.
For troubleshooting purposes I recommend that you Serial.print your "raw" ADC readings before you map or subtract.
I would guess the problem is related to having no spaces between your "printed" values. I can see the minus sign when you get a negative after subtracting, but I don't know where that variable/value ends and a positive result begins...
Print one value on a line and print the variable name in front of the variable. (Sorry, my computer is acting "funny" ritht now and I can't access the Arduino language reference to help with that.)
I'm not sure what you are doing but with audio, you are going to get values that seem "random" when read one at a time. i.e. The right could be louder than the left, but the left might read higher at one instant where the right-waveform/phase is negative or near-zero.
Anyway... after so much browsing... i think i got a module with only digital output... without analog output!
I doubt that... But, when you buy something off eBay with no datasheet... Who knows WHAT you are getting?
A digital signal would be either logic 0 (about) 0V, or logic 1 (about ) 5V. In theory you would always read zero or 1023 with nothing in-between. In reality, you might read something slightly more than zero, and slighly less than 1023 (with some variation due to noise). You'd also get a reading in-between once in awhile if you happen to read the voltage when it's switching between one & zero.
[u]This one[/u] is biased at 2.5V so that you can capture the positive & negative half of the soundwave. With no sound, you'll read (about) 512. With quiet sounds, you will read values near 512. With loud sounds, you may get readings that go down to zero and up to 1023. But since it's a soundwave, with loud sounds you'll get "random" readings between zero and 1023, depending on where you are along the wave when you take a reading.