Would a pot (potentiometer - volume control) work for you? A pot is a variable voltage divider. (An audio taper pot is probably better than a linear pot in this application.)
I think you can get-by without amplification. For example if 0 - 3.3V is 0- 1024 then 0 - 0.5V is 0 - 151 and that might be enough range to be useful.
I'd certainly try it without amplification first. The decoding is the tricky part and there's no point in making an amplifier if you can't get it to work with a good-strong signal first.
You might be able to get a usable range using one fixed voltage divider.*
In any case you're going to need an [u]over-voltage protection circuit[/u] in case the pot is adjusted wrong or in case you've got the wrong voltage divider switched-in.
You'll also need to [u]bias the input[/u] so the Arduino can read the negative-half of the AC audio waveform.
something lower for headphone signal
(Line level - Wikipedia)
The tricky thing about "line level" is that the real signal level depends on a the volume control setting and the loudness of the program material. Pros have one or more level meters somewhere in the chain but that doesn't mean every signal is hitting +4dBu. Consumer's don't have meters and consumer "line level" can vary a lot on different equipment.
Headphone level is usually interchangeable with line-level (with the headphone volume turned-up). The main difference is that headphone outputs are capable of driving lower impedance loads, and the headphone output always has a volume control, and sometimes line-level outputs don't. (The headphone jack on a laptop doubles as a line-output... I've got a laptop plugged into my living room stereo.)
- I've made sound activated lighting that digitally self-adjusts to a 20-second moving average to set a (digital) threshold or reference level. (My setup also automatically switches the ADC reference voltage, but I can only get-away with that because I'm using a peak detector circuit that only puts-out positive voltage so my input is not biased. That won't work for you because you need to read the actual audio.)