Orders are not created until after the final step of the checkout process, so you will not be able to set the value of a custom Order field. Peter's suggestion of using ShoppingCartCustomData/OrderCustomData would be the simplest approach, but you can still use your custom Order field.
As Peter mentioned, the OrderCustomData field is automatically populated with the ShoppingCartCustomData after checkout. This is also true for any other similarly-named fields. For example, if you create a field "OrderPORef" for the shopping cart and "OrderPORef" for the order and set the cart OrderPORef during checkout, that value will automatically transfer to the Order.
With either of these approaches, you can then set cart.ShoppingCartCustomData["OrderPORef"] or cart.OrderPORef during checkout and you should be fine. You can check other web parts like ~\CMSWebParts\Ecommerce\Checkout\Selectors\PaymentMethodSelection.ascx.cs for inspiration.