Quaternion is used to indicate rotation. First you need to indicate the direction when the rotation is not applied. For example, if you want to move along the X axis when rotation is not applied:
Vector3 baseDirection = new Vector3(1,0,0);
Make sure that the base direction is normal (length = 1), you can use the nor() method to ensure security:
Vector3 baseDirection = new Vector3(1,0,0).nor();
Then you need to rotate the direction using Quaternion:
Vector3 direction = new Vector3(); Quaternion rotation = your_quaternion; direction.set(baseDirection); direction.mul(rotation);
Now that you have a direction, you can scale it with the amount you want to move. You probably want to do this every frame and depending on the time elapsed since the last frame.
final float speed = 5f;
Finally, you need to add the translation to the position
position.add(translation);
Of course, depending on your actual implementation, you can perform several operations, for example:
translation.set(baseDirection).mul(rotation).scl(speed * Gdx.graphics.getDeltaTime()); position.add(translation);
Update: Adding working code from a Xoppa comment:
translation.set(baseDirection).rot(modelInstance.transform).nor().scl(speed * delta)