Amplifying a small speaker

You'll need a resistor divider as well as RC low-pass filter from the Arduino to the amp - the easiest way to do this is to add a capacitor in parallel with the lower leg of the divider. To remove the DC component of the Arduino's output then feed the mid-point of this divider/LPF via a capacitor to the input of the LM386.

Yes, capacitor in the output is to remove DC bias from the output (DC bias will push the speaker's voice coil well away from the centre position, causing severe distortion (and heating it up).

Basically the LM386 can amplify small AC signals around 0V, but they can only go a little bit negative, hence the need for 20x gain or more. You are only wanting the current amplification so the resistor-divider will cancel the voltage gain you don't need.