In my experience, this can be addressed by adjusting your Refining and Detailing settings under the Dyntopo section of the Properties Panel.
What I have found is that you want to be mindful of the rate at which geometry is being increased by your strokes, or else bad things can happen. For example, if you use the Inflate brush with high influence and high mesh density, you can get problems like the ones you have shown. The vertices influenced by the brush are trying to get further away from one another, and depending on the surface contours, they won't always be able to do this without intersecting other parts of the mesh. Blender seems to use the faces' normal direction to tell them how to respond to the strokes, so that when many faces are all intersecting, the brush won't always have full influence on all targeted faces anymore. When this happens, I find that the only real solution is a two step process: 1) Use the Simplify brush to reduce the density of the mesh in the problem area and 2) use the Smooth brush to iron out the irregular surfaces afterwards (Gratefully, the Smooth brush can be invoked on the fly with the Shift key). Sometimes, if the situation is especially severe, one might need go back and forth between these two tools in a kind of iterative process. It won't do to merely use Smooth by itself, as the shape is now too complex to get anywhere with that. The Simplify step is needed to remove the complexity of the intersecting surfaces so that the smoothing can do what you want it to do.
Another approach is, instead of using the Simplify brush, to go under Dyntopo settings and choose the "Collapse Edges" Refine Method Setting, then draw with standard sculpting brushes as normal. You might find it easier to make "Collapse Edges" your Step 1 instead of the Simplify brush.
Note: In either case, the Detail Size Slider calculates its effect in a counter-intuitive way, seeming to do the opposite of what is expected. One might assume a higher value on the slider would add more detail, given the name of the slider. But the slider actually is based on maximum edge length, and the higher the value, the more the existing edge lengths are preserved. Meaning that lower values for the slider actually lead to more subdivisions instead of fewer. This threw me off at first.
Hope this helps.