Graph with overlapping labels

I have a web app that builds and displays a bar chart based on dollar amounts. A typical graph looks something like this:

typical graph

As you can see, the layers at the bottom of the graph have dollar amounts that are too small to show their labels without them overlapping.

What's the best way to compensate for this so that the bottom of my graphs are easier to read?

Things I've thought of:

  • Set up a minimum layer height so that the labels can't overlap. This looks the best but requires me to squish the remaining layers to make everything fit and so the graph is no longer accurate.

stretched

  • When a layer is too short, stagger the labels so they don't overlap. This is better than them overlapping but still doesn't look great IMO.

dashed

  • Remove the labels altogether and place them in a separate key/legend based on color. This is a clean solution but I already have the labels for the vertical slices separated into a key and I'm worried that the more I remove from the actual graph, the harder it is to interpret and therefore loses some of its value.