Is there any way to make circuit with potentiometer that will make fairly good sound?
The 1st question is how to get "good sound" out of the Arduino.. The Arduino doesn't have a true-analog output. I suggest you test your Arduino design by plugging in some regular "powered" computer speakers, or plug into a small* stereo amp, etc., before building an amplifier.
Similarly, you can test your amplifier by plugging in the headphone output from your phone/iPod/computer etc.
It's not always "easy" to make a high-fidelity amplifier and you can get noise from a USB power supply.
Also, "raw" speakers should be in a box for good sound. Otherwise the (reversed) sound waves from the back mix with the sound waves from the front and the bass gets killed (canceled-out).
Note that the maximum you can get from 5V with a "normal" amplifier is about 3/4 of a Watt into 4 Ohms and 3/8 of a Watt into 8 Ohms. With a bridge amplifier (double the output-voltage) you can get 4 times as much power.
...Power can be calculated as V2/R.
With 5VDC you can get 5V peak-to-peak. That's 2.5V peak or 1.77V RMS. With a bridge amplifier you can get 5V peak-to-peak or 3.5V RMS.
You could get high-power noises & oscillations when experimenting and you wouldn't want to accidently blow-out your 100W stereo amp or speakers... So, it's better to test/experiment with low power.