it could be a lot of things depending on what you mean by "janky" specifically. if the movement is stuttering, my guess is you probably have it locking to integer positions, which you can change by making sure the pixel rounding setting is turned off in the properties bar for your project:
if you want this setting on, you can have non-janky movement by using movement speeds where the player is mostly moving at whole pixel values every frame, which would be any multiple of 60. if you're moving at, say, speed 30, which is 30 pixels per second, your character would be stationary for 1 frame, and then move 1 pixel for 1 frame (assuming your game is running at 60 FPS). likewise, if you're moving at, say, 200, which would be 3.33 pixels per 60FPS frame, your character would move by 3 pixels for 2 frames, and 4 pixels for 1 frame, which can cause noticeably uneven movement
the sin behavior isn't generally going to move like that though, because the nature of sin waves is that the change in position is non-constant.
in my project i'm letting the characters have non-integer positions, but i set them to an integer position when they hold still. this causes other problems i had to deal with, but i don't like the effect of uneven pixel overlap when things are offset by half (or quarter) pixels, so this is my solution to make them line up with the other graphics when idling.
if your sprite is moving jankily in a different way, though, the problem could be something else