My example was only a guideline, not a full implementation. I guess I'll explain it a bit further.
I figured that the crate in your game goes around the whole conveyor belt, but I only made the ending part, since that was what you were having trouble with. My code being in draw event is not a problem. You can put the same code in step event too, and you don't need the draw functions, since your crate is an actual object, not just a sprite.
If you don't want to fit my example in your code, then probably the easiest (but not the most efficient, but like I said, it doesn't really matter) solution would be to do like I said:
point_direction(stickyObj.x, stickyObj.y, endCircleCenterX, endCircleCenterY)
Let me explain those two new variables for you. Your conveyor belt consists of 3 basic geometric shapes, doesn't it? You have two circles and a rectangle that connects to both of these circles. To make the turning smooth, you can't use the current origin of your sprite, but the center point of the circle you're going around at the moment. If you're circling the left circle, you must set (endCircleCenterX, endCircleCenterY) to the center point of the left circle, and when circling the right, you'll use the coordinates of the right circle's center. This way the direction will always be correct.
To see what I mean, check where I put the origin in my conveyor sprite: it's at the center point of the purple circle.