The problem isn't with wiggle() per se, it's that the wiggle is getting sampled too infrequently to give you a result that is representative of the motion of the emitter. The emitter's position is being evaluated on every frame, but the emitter is moving so much between the frames that a lot of information about the motion path simply never gets sampled.
The only way to get that information onscreen is to reduce the frequence of the wiggle. This will necessarily make your particle animation run slower (you'll also need to increase the lifespan of your particles in inverse proportion to compensate). Then you'll have to nest your particle layer and the emitter null (plus any other layers on which Particular depends) and use time remapping to speed up the animation proportionally.
Also, you might already know this, but Particular allows you to use a light as an emitter control without having to muck around with expressions to tie it to Particular's emitter properties.