If it runs well except at idle, there are two most-likely causes. The first is that the idle mixture is adjusted incorrectly, and the second is that the needle and seat is leaking very slightly. If the latter cause applies, though, it would idle properly when first allowed to idle, then would gradually become rich after a delay of probably more than half a minute, during which the float level would be slowly rising.
If it is neither of those, the key question is whether it is rich or lean when it misbehaves. You can probably find out which by letting it idle for a couple of minutes then looking at the spark plug.