Well... (importing your .STL object):
obj = Import["Link.STL"]

...if nothing else a very poor man's solution for simple visual in an interactive interface is just random sampling of points (i know it is far from spectacular :-) but is very light):
pts=RandomPoint[obj,1000];
obj//ByteCount
Graphics3D[Point[pts]]//ByteCount
1808792
24792
Also I just would like to outline a strategy for this, and explain why it might be a good approach. I cannot run complete wonderful code by @HenrikSchumacher (tech difficulties), but people here I bet can figure it out. So now if we think of somehow roughening polygons to lower resolution we might run into a problem, depending on a case, and this case is a good example. Let's see how points are distributed in the original .STL object:
Graphics3D[MeshPrimitives[obj, 0]]

Do you see how many are dense in one region and sparse in another? So some blunt approach of locally down-sampling polygons might require a very complicated algorithm, but still be inefficient somehow due to highly non-uniform down-sampling. Now we can think of another approach. We have ability to randomly point-sample any high-res region:
pts=RandomPoint[obj,200];
and you can see how points now appear in the regions with low density of points in the original mesh:
Show[
HighlightMesh[RegionBoundary[obj],{Style[2,Opacity[0.2]],Style[1,Opacity[0.4]]}],
Graphics3D[{Red,Sphere[pts,1]}],
Boxed->True,Axes->True]

Now you can run wonderful code by @HenrikSchumacher and others seen in posts about VORONOI and GEODESICS to be ready to go, or maybe you can also think of applying a spline approach as an interesting alternative discussed HERE - but this might need more jumping through the hoops in terms of proper data for BSplineFunction
.
points = RandomPoint[Import["Link.STL"], 1000]
and then using your Voronoi code. $\endgroup$