Randomize several versions of the texture with different size and rotations, then use some noise to blend between them. If you do this on a couple of different textures and blend them it’s even better, especially if the texture is small to begin with, but I tend to prefer a massive single texture and derive stuff (bump, roughness etc) from that.
When you manage to do something you like as a planar mapping (“flat”), make a group of the setup and use it three times with different 2D coordinates to drive it; xy, xz, and yz. Feed those into a box mapping node that supports seam blending (I downloaded mine from blendswap iirc but reduced it’s complexity to only support 3 sides rather than 6). For randomizing rotation and scale, you also need a custom node that does exactly the same as the mapping node but supports inputs.
It’s a lot of work, fairly heavy to render, but unfortunately the builtin box mapping support is extremely limited in that you can’t change anything that goes into it. Keep in mind that randomizing rotation only works on textures that doesn’t have a strong directional sense (such as directional woodgrain). Obviously this doesn’t “follow the sculpted features”, I can’t think of a way that does that.
Which looks like a tiled texture, the left objects or the right objects?
Here a closeup on properly boxmapped and randomized suzanne, it holds up pretty good I think:
The free texture used for illustration is RustMixedOnPaint012_COL_VAR1_6K.jpg from polygon, in case you want to try for something similar.
Here is how I structured the nodes (custom mapping node not showing, but should be fairly straightforward), with the box mapping node highlighted in the background: