Most textures have a detail slider, but oftentimes it's better to mix in another noise texture at a smaller scale.
One of the biggest giveaways that you're looking at a rendered object is a lack of variation. Looking at the following object, it's painfully obvious it's a render.
We can generate some noise to break up the base color and it gets much better.
However, it's still clear what you're looking at. Procedural textures come with their own challenges, and if you imagine using procedural textures on many things in your scene everything starts to get a perlin noise "sameness". So for lack of a better term you need variety in your variety.
You must take measures to break up the pattern. You need a diverse toolkit and the ability to mix and match elements. For example to cover up this base color we might do something like mix in a layer of noise that's just humongous on top of the other.
Bearing in mind that everything here is just Base Color and the rest is default Principled, we're getting there. If we can identify features that we want to add we can generate noise maps that have those features and choose where to mix them in.
So I want this to have a horizontal grain, I can do that with a wave texture with a high scale. I don't need real geometry so I'll use a bump node to convert that into height data and plug it into the Normal socket:
Now in my mind we've run into another problem because the lines are too perfect. So another thing we can do is distort the coordinate space before we feed it to the texture.
Wave texture does have a distortion option but it's not exactly what I want.
So yes, we are sending vector data into a color input and vice versa, but the node will treat XYZ just like RGB... and vice versa, and just do the math and get on with our lives.
You don't need to mix in much noise in most cases. If you use a viewer node on it you'll see it gets out of hand pretty quickly. It's really easy to drown out a wave texture in particular.
The effect is... almost human imperceptible, but as Andrew Price says it's one of those things that you'll never notice unless it's not there.
So to finish this off I think I'd raise the scale of the wave texture a bit, and maybe take that same pattern and apply a color ramp to it to use it for the roughness. Maybe one more splash of some earth-tone color.
At the end we have this:
And really we used one wave texture and the rest is just perlin noise. Surely doesn't look like that second image, though.
There are plenty more ways to provide layers of detail to your object. Displacement is a big one but I'll leave that for a more targeted answer.
Here's an example of a procedural printed cardboard material that uses the clearcoat layer and clearcoat normal to provide the imperfect reflective sheen leaving me room to provide tons of bump data beneath the surface.
In your picture it looks like you're using subsurface scattering. Just be aware that this makes it harder to identify tiny details on the surface since light penetrates through. However... just because they're hard to identify doesn't mean you wouldn't miss them if they weren't there.