Well, I think I see what may be a problem with your circuit!
You've got the VRef input (pin 4) on the MCP4921 tied (via R9) to 5V. On this device, that is going to result in virtually rail-to-rail output, so about 5V peak-to-peak.
Compare that to a typical "Line Input" signal of what, less than half a volt peak-to-peak? So more than 10x a typical audio signal?
You are then inputting that into your LM386 amp, which is only running at 5V (compared to 9V on that other schematic). That chip is spec'd to provide a voltage amplification of between 20x and 200x (configured with pins 1 & 8 disconnected like you have it, I believe the voltage gain is auto set to 20x). But with a supply voltage of only 5V, that chip is incapable of even outputting 5V peak-to-peak, let alone amplifying beyond it!
Does it sound REAL LOUD and distorted?
I believe the problem may be the DAC over-driving the input of the LM386, causing clipping and thus severely distorting your audio signal!
The solution is simple - leave R9 in place, but add a 4.7K - 8.2K resistor (optimum value depending on output load you are placing on LM386, see below) between VRef (pin 4 on the DAC) and GND. This will lower VRef to between about 0.225V to 0.379V.
Given that you are running the LM386 on only 5V, that is still perhaps around twice what we need. But R5 & R6 in your circuit form a voltage divider that then nicely divides that signal for you by 2!
But before I get to calculating that resistor's value, some programming notes on the MCP4921, that could also be contributing to the problem -
If you are running VRef at 5V, you cannot use Buffered Mode, as this requires that VRef be less than Vdd.
If you are running a VRef > 2.5V, then the NOT GA Gain Select Bit (bit 13) must be set to 1 (Gain=1x). Otherwise, the internal op-amp will attempt to amplify the signal beyond 5V, causing clipping/distortion inside the DAC chip itself! (Even when running the DAC with the extra resistor, you still want to have this bit set to 1, else the output voltage doubles!)
Are you remembering to set that bit when you write to the DAC? (Combined with the NOT SHDN bit, I think you might be able to do this simply by OR'ing the desired DAC (word) value with 0x300000)
Anyways, for maximum volume without distortion, the best resistor value to place between VRef (pin 4 on the DAC) & GND, depends on what kind of load you are putting on the output of the LM386. With only a 5V supply to the device, looking at the max. output voltage swing here (top-right chart on pg 5) -
Magnifying that rough graph, @Vs = 5V, depending on the load you place on the output, it looks like you get a maximum peak-to-peak output of between ~2.5V (for driving say a 4 ohm speaker), ~3.15V (for 8 ohm load), ~3.4V (for 16 ohm load), up to a max. of ~3.8V (for RLoad = infinity).
In order to avoid clipping distortion, I would think you would want to keep the amplified signal below that maximum output voltage swing!
So, if you put a 4.7K resistor between VRef and GND, you would get a VRef = ((4.7K/(100K+4.7K))*5V) = ~0.225V, with a gain of 10x (20x/2), resulting in ~2.25V peak-to-peak output by the LM358 amp.
If you instead used an 8.2K resistor, you would get VRef = 0.379V, x10 gain = ~3.8V peak-to-peak output.
(You may also get a little signal loss from your low-pass filter, so YMMV, you may need to tweak the value a bit)
So, lower values for that resistor will reduce the output of the DAC, while higher values will increase the output, but may result in clipping distortion.
If you just want to drive a 4 or 8 ohm speaker, try a 4.7K or 5.1K, and see how that works! For an 8 ohm speaker, if you want more volume, you can also try a 5.6K, 6.1K or 6.8K.
You may also want to try experimenting with just temporarily putting a 10K pot between VRef & GND, adjusting it to get the volume & sound quality you are happy with, then disconnect it, measure the resistance, and find the closest fixed resistor to use in it's place!
Another alternative option would be to increase the value of R5 to between around 130K and 220K (In this case, high resistance = lower output, and lower value = increased output, but greater chance of distortion). But I think it would be better quality-wise to add the resistor on VRef instead.
And don't forget to set bit 13 when you output to the DAC!