Solution 1:

I experienced the same problem and I have written a post about the solution I found here. Basically what I did was this:

Open the file /etc/pulse/default.pa by typing the following in a terminal:

gksudo gedit /etc/pulse/default.pa

Change the line that says

load-module module-udev-detect

into

load-module module-udev-detect ignore_dB=1

Save and close the file.

Restart pulseaudio by typing the following in a terminal:

pulseaudio -k

Now open alsamixer:

alsamixer

Then lower the PCM volume to a decent level (I set mine to about 50 %). After doing this, changing the volume using the volume keys or volume slider won't reset the settings for PCM in alsamixer and will let you keep the lowest threshold of the volume a as low as you'd like. This will also keep the volume intervals smaller. The only negative effect is that you won't get as much sound out of your speakers without headphones unless you change back the PCM settings in alsamixer again.

I can't guarantee that this will work on your system, but it did work nicely on mine.

Solution 2:

None of the solutions worked for me.

Here's what got my issue solved:

Edit /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common

sudo vim /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common

Change:

[Element PCM]
switch = mute
volume = merge
override-map.1 = all 
override-map.2 = all-left,all-right

To:

[Element PCM]
switch = mute
volume = ignore
volume-limit = 0.01
override-map.1 = all 
override-map.2 = all-left,all-right

Adjust volume-limit so that it fits your headphones volume range. In my case 0.01 was good.

Restart pulseaudio: pulseaudio -k or reboot sudo reboot

Full credits to this site. https://chrisjean.com/fix-for-usb-audio-is-too-loud-and-mutes-at-low-volume-in-ubuntu/

UPDATE:

The above solution overwrites all sound outputs. Hence, lowering your speakers volume limit too.

In order to lower only headphones max, set the above config into the [Option Analog Output:Headphones] section (same analog-output.conf.common).

Before:

[Option Analog Output:Headphones]
name = output-headphones
priority = 9

After:

[Option Analog Output:Headphones]
name = output-headphones
priority = 9
volume = ignore
volume-limit = 0.0