You could convert the normal map into a height field, and then use a triplanar node to map your texture onto it.
You could also split the split out the R + G channels of the normal map, and warp your texture using the R channel, and then the G channel.
This second approach would only distort the input texture in 2 directions (I.e. up and right, not up + down + left + right). For a more sophisticated approach, you could split each channel in half again, mapping values 0-128 into one warp node, and values 128-256 in another with the angle set to opposite direction.
Hope these outlines make sense - can put together some visual examples if they don’t.